Check the return value of chdir(2) and write(2).
authorcl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Mon, 12 Sep 2005 20:24:58 +0000 (20:24 +0000)
committercl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Mon, 12 Sep 2005 20:24:58 +0000 (20:24 +0000)
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
tools/console/daemon/utils.c

index 985de2061a3ba96fd03913e022929fc4eb055535..3372632737cb06f0543343a5218034d1b5808473 100644 (file)
@@ -105,7 +105,8 @@ void daemonize(const char *pidfile)
        close(fd);
 
        umask(027);
-       chdir("/");
+       if (chdir("/") < 0)
+               exit (1);
 
        fd = open(pidfile, O_RDWR | O_CREAT);
        if (fd == -1) {
@@ -117,7 +118,8 @@ void daemonize(const char *pidfile)
        }
 
        len = sprintf(buf, "%d\n", getpid());
-       write(fd, buf, len);
+       if (write(fd, buf, len) < 0)
+               exit(1);
 
        signal(SIGCHLD, child_exit);
        signal(SIGTSTP, SIG_IGN);